﻿using WMS.FC.Domain.DomainObject.System;

namespace WMS.FC.Domain.PersistenceObject
{
    public class HistoryPOBase : WarehousePOBase
    {
        /// <summary>
        /// 主键
        /// </summary>
        [SplitTableColumn(ColumnName = "ID", ColumnDataType = "NUMBER(19)", IsPrimaryKey = true, ColumnDescription = "主键")]
        public new long Id { get; set; }

        /// <summary>
        /// 仓库编码
        /// </summary>
        [SplitTableColumn(ColumnName = "WAREHOUSE_CODE", ColumnDataType = "VARCHAR2(50)", ColumnDescription = "仓库编码")]
        public new string WarehouseCode { get; set; } = string.Empty;

        /// <summary>
        /// 产线编码
        /// </summary>
        [SplitTableColumn(ColumnName = "LINE_CODE", ColumnDataType = "VARCHAR2(50)", ColumnDescription = "产线编码")]
        public string LineCode { get; set; } = string.Empty;

        /// <summary>
        /// 创建日期
        /// </summary>
        [SplitTableColumn(ColumnName = "CREATE_DATE", ColumnDataType = "TIMESTAMP(7)", ColumnDescription = "创建日期")]
        public new DateTime CreateDate { get; set; } = new DateTime(2000, 1, 1);

        /// <summary>
        /// 创建人
        /// </summary>
        [SplitTableColumn(ColumnName = "CREATED_BY", ColumnDataType = "VARCHAR2(50)", ColumnDescription = "创建人")]
        public new string CreatedBy { get; set; } = string.Empty;

        /// <summary>
        /// 修改日期
        /// </summary>
        [SplitTableColumn(ColumnName = "MODIFY_DATE", ColumnDataType = "TIMESTAMP(7)", IsNullable = true, ColumnDescription = "修改日期")]
        public new DateTime? ModifyDate { get; set; }

        /// <summary>
        /// 修改人
        /// </summary>
        [SplitTableColumn(ColumnName = "MODIFIED_BY", ColumnDataType = "VARCHAR2(50)", IsNullable = true, ColumnDescription = "修改人")]
        public new string? ModifiedBy { get; set; }

        /// <summary>
        /// 修改人IP
        /// </summary>
        [SplitTableColumn(ColumnName = "MODIFY_IP", ColumnDataType = "VARCHAR2(50)", IsNullable = true, ColumnDescription = "修改人IP")]
        public new string? ModifyIp { get; set; }

        /// <summary>
        /// 是否软删除
        /// </summary>
        [SplitTableColumn(ColumnName = "IS_DELETED", ColumnDataType = "NUMBER(1)", DefaultValue = "0", ColumnDescription = "是否软删除")]
        public new bool IsDeleted { get; set; }
    }
}
